/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package gradius.Elementos.Naves;

import gradius.Elementos.Coordenada;
import gradius.InterfaceGrafica.TelaGrafica;
import java.awt.Graphics2D;
import java.awt.Image;

/** Classe que proporciona a animação das naves
 * @author Eduardo
 */
public abstract class NaveAnimada extends Nave
{
    private int incr;
    private int indice;
    private Image[] imagens;

    /** Construtor da clase NaveAnimada
     * @param tela - Painel de desenho do jogo
     * @param imagens - Vetor onde as imagens de um determinado elemento são armazenadas
     * @param coordX - Coordenada do eixo horizontal
     * @param coordY - Coordenada do eixo vertical
     * @param tamX - Largura em pixels do elemento no eixo horizontal
     * @param tamY - Largura em pixels do elemento no eixo vertical
     */
    public NaveAnimada(TelaGrafica tela, Image[] imagens, int coordX, int coordY, int tamX, int tamY)
    {
        super(tela,coordX,coordY,tamX,tamY);
        this.imagens = imagens;
        this.indice = 0;
        this.incr = 1;
    }


    /** Método que desenha as imagens da nave em uma determinada sequência, dando animação a ela
     * @param g2 - Objeto Graphics2D para desenho
     */
    @Override
    public void desenha(Graphics2D g2)
    {
        Coordenada coord = new Coordenada(0,0);
        coord = this.getElementoCoordenada();
        g2.drawImage(imagens[indice], coord.getCoordX(), coord.getCoordY(), tela);
        indice += incr;
        if (indice == 0 || indice == imagens.length-1)
        {
            incr = -incr;
        }
    }

}
